package com.todo.user.infrastructure.entity.domain;

import lombok.Data;

import java.util.Date;

/**
 * @author zhangwenxiang
 * @date 2024/3/21 23:40
 * @description
 */
@Data
public class UserAccountDO {

    /**
     * 主键
     */
    private Long id;

    /**
     * 用户基础信息
     */
    private BaseAccountInfo baseAccountInfo;

    /**
     * 用户详情信息
     */
    private AccountDetail accountDetail;

    /**
     * 是否删除
     */
    private Integer isDelete;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;


    @Data
    public static class BaseAccountInfo {
        private String userName;
        /**
         * 手机号
         */
        private String mobile;
        /**
         * 密码
         */
        private String password;
        /**
         * 昵称
         */
        private String nickName;
        /**
         * 签名
         */
        private String signature;
        /**
         * 性别
         */
        private Integer gender;
        /**
         * 出身年月日
         */
        private Date birthday;
        /**
         * 籍贯
         */
        private String nativePlace;
        /**
         * 当前城市
         */
        private String location;
        /**
         * 手机号是否验证
         */
        private Integer isMobileVerify;
        /**
         * 头像
         */
        private String headImg;
        /**
         * 背景题
         */
        private String backgroundImg;
        /**
         * 用户类型：0-普通用户
         */
        private Integer userType;
        /**
         * 状态:0 - 已注销；1 - 激活状态字段 2-禁言
         */
        private Integer status;
        /**
         * 是否真实用户
         */
        private Integer isReal;
        /**
         * 手机号区号
         */
        private Integer mobileNationCode;
        /**
         * 来源
         */
        private Integer source;
        /**
         * 职业
         */
        private Integer career;
    }

    @Data
    public static class AccountDetail {
        /**
         * 出行目的
         */
        private String travelObjective;
        /**
         * 个人宣言
         */
        private String promotion;
        /**
         * 兴趣列表
         */
        private String interestList;
        /**
         * mbit
         */
        private String mbit;
        /**
         * 假期类型：学生、周末、寒暑假、自由时间
         */
        private Integer holidayType;
        /**
         * 享受生活、穷游、周末互动、特种兵、探索世界
         */
        private Integer travelPlanType;
        /**
         * 扩展信息
         */
        private String extra;
    }
}
